--           Network Working Group                                  J. Case
--           Request for Comments: 1450                 SNMP Research, Inc.
--                                                            K. McCloghrie
--                                                       Hughes LAN Systems
--                                                                  M. Rose
--                                             Dover Beach Consulting, Inc.
--                                                            S. Waldbusser
--                                               Carnegie Mellon University
--                                                               April 1993


--                            Management Information Base
--                                for version 2 of the
--                    Simple Network Management Protocol (SNMPv2)

          SNMPv2-MIB DEFINITIONS ::= BEGIN

          IMPORTS
              MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
              ObjectName, Integer32, Counter32, snmpModules
                  FROM SNMPv2-SMI
              TruthValue, DisplayString, TestAndIncr, TimeStamp
                  FROM SNMPv2-TC
              MODULE-COMPLIANCE, OBJECT-GROUP
                  FROM SNMPv2-CONF
              system, ifIndex, egpNeighAddr
                  FROM RFC1213-MIB
              partyEntry
                  FROM SNMPv2-PARTY-MIB;


          snmpMIB MODULE-IDENTITY
              LAST-UPDATED "9304010000Z"
              ORGANIZATION "IETF SNMPv2 Working Group"
              CONTACT-INFO
                      "        Marshall T. Rose

                       Postal: Dover Beach Consulting, Inc.
                               420 Whisman Court
                               Mountain View, CA  94043-2186
                               US

                          Tel: +1 415 968 1052
                          Fax: +1 415 968 2510

                       E-mail: mrose@dbc.mtview.ca.us"
              DESCRIPTION
                      "The MIB module for SNMPv2 entities."
              ::= { snmpModules 1 }


          snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 }


          -- the SNMPv2 statistics group
          --
          -- a collection of objects providing basic instrumentation of
          -- the SNMPv2 entity.

          -- A Case diagram[4] relating these objects is:
          --
          --  \v/   transport service
          --   |
          -- ==+==  snmpStatsPackets
          --   |
          --   +==> snmpStats30Something
          --   |
          --   +==> snmpStatsEncodingErrors
          --   |
          --   +==> snmpStatsUnknownDstParties
          --   |
          --   +==> snmpStatsDstPartyMismatches
          --   |
          --   +==> snmpStatsUnknownSrcParties
          --   |
          --   +==> snmpStatsBadAuths
          --   |
          --   +==> snmpStatsNotInLifetimes
          --   |
          --   +==> snmpStatsWrongDigestValues
          --   |
          --   +==> snmpStatsUnknownContexts
          --   |
          --   +==> snmpStatsBadOperations
          --   |
          --   +==> snmpStatsSilentDrops
          --   |
          -- ===== sink

          snmpStats      OBJECT IDENTIFIER ::= { snmpMIBObjects 1 }

          snmpStatsPackets OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of packets received by the
                      SNMPv2 entity from the transport service."
              REFERENCE
                      "Derived from RFC1213-MIB.snmpInPkts."
              ::= { snmpStats 1 }

          snmpStats30Something OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of packets which had an initial
                      octet with a value of 30 hexadecimal received by a
                      SNMPv2 entity which does not support SNMPv1.
                      (Such packets are possibly misdirected SNMPv1
                      Messages.)"
              REFERENCE
                      "Derived from RFC1213-MIB.snmpInASNParseErrs."
              ::= { snmpStats 2 }

          snmpStatsEncodingErrors OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of packets received by the
                      SNMPv2 entity which were improperly encoded or had
                      invalid syntax."
              REFERENCE
                      "Derived from RFC1213-MIB.snmpInASNParseErrs."
              ::= { snmpStats 3 }

          snmpStatsUnknownDstParties OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SnmpPrivMsgs delivered to the
                      SNMPv2 entity for which the privDst field was not
                      a known local party."
              ::= { snmpStats 4 }

          snmpStatsDstPartyMismatches OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SnmpPrivMsgs delivered to the
                      SNMPv2 entity which contained a SnmpAuthMsg for
                      which the authData.dstParty field did not match
                      the privDst field in the SnmpPrivMsg."
              ::= { snmpStats 5 }

          snmpStatsUnknownSrcParties OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SnmpAuthMsgs delivered to the
                      SNMPv2 entity for which the authData.srcParty
                      field was not a known remote party."
              ::= { snmpStats 6 }

          snmpStatsBadAuths OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SnmpAuthMsgs delivered to the
                      SNMPv2 entity which contained an authInfo field
                      which was inconsistent with the authentication
                      protocol associated with the source party."
              ::= { snmpStats 7 }

          snmpStatsNotInLifetimes OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SnmpAuthMsgs delivered to the
                      SNMPv2 entity which were deemed unauthentic due to
                      their authInfo.authSrcTimestamp field being less
                      than the source party's clock plus lifetime."
              ::= { snmpStats 8 }

          snmpStatsWrongDigestValues OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SnmpAuthMsgs delivered to the
                      SNMPv2 entity which were deemed unauthentic due to
                      their authInfo.authDigest field being unequal to
                      the expected digest value."
              ::= { snmpStats 9 }

          snmpStatsUnknownContexts OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SnmpMgmtComs delivered to the
                      SNMPv2 entity for which the context field was not
                      a known SNMPv2 context."
              ::= { snmpStats 10 }

          snmpStatsBadOperations OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of messages delivered to the
                      SNMPv2 entity which were silently dropped because
                      the PDU type referred to an operation not allowed
                      in the aclTable[5]."
              ::= { snmpStats 11 }

          snmpStatsSilentDrops OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of GetRequest-PDUs,
                      GetNextRequest-PDUs, GetBulkRequest-PDUs,
                      SetRequest-PDUs, and InformRequest-PDUs delivered
                      to the SNMPv2 entity which were silently dropped
                      because the size of an reply containing an
                      alternate Response-PDU with an empty variable-
                      bindings field was greater than either a local
                      constraint or the maximum message size of the
                      request's source party."
              ::= { snmpStats 12 }


          -- the SNMPv1 statistics group
          --
          -- a collection of objects providing basic instrumentation of
          -- a SNMPv2 entity which also implements SNMPv1.

          -- A Case diagram[4] relating these objects
          -- (and those applicable objects in the snmpStats group)
          -- is:
          --
          --  \v/   transport service
          --   |
          -- ==+==  snmpStatsPackets
          --   |
          --   +==> snmpStatsEncodingErrors
          --   |
          --   +==> snmpV1BadCommunityNames
          --   |
          --   +==> snmpV1BadCommunityUses
          --   |
          -- ===== sink

          snmpV1         OBJECT IDENTIFIER ::= { snmpMIBObjects 2 }


          snmpV1BadCommunityNames OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SNMPv1 Messages delivered to
                      the SNMPv2 entity which used a community name not
                      known to the SNMPv2 entity."
              REFERENCE
                      "Derived from RFC1213-
                      MIB.snmpInBadCommunityNames."
              ::= { snmpV1 1 }


          snmpV1BadCommunityUses OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The total number of SNMPv1 Messages delivered to
                      SNMPv2 entity containing an operation which was
                      not allowed for the community named in the
                      Message."
              REFERENCE
                      "Derived from RFC1213-MIB.snmpInBadCommunityUses."
              ::= { snmpV1 2 }


          -- the object resource group
          --
          -- a collection of objects allowing a SNMPv2 entity acting in
          -- an agent role to describe its dynamically-configurable
          -- object resources.

          snmpOR         OBJECT IDENTIFIER ::= { snmpMIBObjects 3 }


          snmpORLastChange OBJECT-TYPE
              SYNTAX     TimeStamp
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The value of sysUpTime at the time of the most
                      recent change in state or value of any instance of
                      snmpORID."
              ::= { snmpOR 1 }

          snmpORTable OBJECT-TYPE
              SYNTAX     SEQUENCE OF SnmpOREntry
              MAX-ACCESS not-accessible
              STATUS     current
              DESCRIPTION
                      "The (conceptual) table listing the dynamically-
                      configurable object resources in a SNMPv2 entity
                      acting in an agent role.  SNMPv2 entities which do
                      not support dynamically-configurable object
                      resources will never have any instances of the
                      columnar objects in this table."
              ::= { snmpOR 2 }

          snmpOREntry OBJECT-TYPE
              SYNTAX     SnmpOREntry
              MAX-ACCESS not-accessible
              STATUS     current
              DESCRIPTION
                      "An entry (conceptual row) in the snmpORTable."
              INDEX      { snmpORIndex }
              ::= { snmpORTable 1 }

          SnmpOREntry ::= SEQUENCE {
              snmpORIndex                         Integer32,
              snmpORID                            OBJECT IDENTIFIER,
              snmpORDescr                         DisplayString
          }

          snmpORIndex OBJECT-TYPE
              SYNTAX     Integer32
              MAX-ACCESS not-accessible
              STATUS     current
              DESCRIPTION
                      "The auxiliary variable used for identifying
                      instances of the columnar objects in the
                      snmpORTable."
              ::= { snmpOREntry 1 }

          snmpORID OBJECT-TYPE
              SYNTAX     OBJECT IDENTIFIER
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "An authoritative identification of one of the
                      dynamically-configurable object resources in a
                      SNMPv2 entity acting in an agent role.  This is
                      analogous to the sysObjectID object in MIB-II."
              ::= { snmpOREntry 2 }

          snmpORDescr OBJECT-TYPE
              SYNTAX     DisplayString
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "A textual description of one of the dynamically-
                      configurable object resources in a SNMPv2 entity
                      acting in an agent role.  This is analogous to the
                      sysDescr object in MIB-II."
              ::= { snmpOREntry 3 }


          -- the traps group
          --
          -- a collection of objects which allow the SNMPv2 entity, when
          -- acting in an agent role, to be configured to generate
          -- SNMPv2-Trap-PDUs.

          snmpTrap       OBJECT IDENTIFIER ::= { snmpMIBObjects 4 }


          snmpTrapOID OBJECT-TYPE
              SYNTAX     OBJECT IDENTIFIER
              MAX-ACCESS not-accessible
              STATUS     current
              DESCRIPTION
                      "The authoritative identification of the trap
                      currently being sent.  This variable occurs as the
                      second varbind of a SNMPv2-Trap-PDU."
              ::= { snmpTrap 1 }

          snmpTrapTable OBJECT-TYPE
              SYNTAX     SEQUENCE OF SnmpTrapEntry
              MAX-ACCESS not-accessible
              STATUS     current
              DESCRIPTION
                      "A table which keeps track of how many traps have
                      been sent to each SNMPv2 entity."
              ::= { snmpTrap 2 }

          snmpTrapEntry OBJECT-TYPE
              SYNTAX     SnmpTrapEntry
              MAX-ACCESS not-accessible
              STATUS     current
              DESCRIPTION
                      "An entry which keeps track of how many traps have
                      been sent to a particular SNMPv2 entity."
              AUGMENTS   { partyEntry }
              ::= { snmpTrapTable 1 }

          SnmpTrapEntry ::= SEQUENCE {
              snmpTrapNumbers                     Counter32
          }

          snmpTrapNumbers OBJECT-TYPE
              SYNTAX     Counter32
              MAX-ACCESS read-only
              STATUS     current
              DESCRIPTION
                      "The number of traps which have been sent to a
                      particular SNMPv2 party, since the last
                      initialization of the SNMPv2 entity, or the
                      creation of the SNMPv2 party, whichever occurred
                      most recently."
              ::= { snmpTrapEntry 1 }

          snmpTrapEnterprise OBJECT-TYPE
              SYNTAX     OBJECT IDENTIFIER
              MAX-ACCESS not-accessible
              STATUS     current
              DESCRIPTION
                      "The authoritative identification of the
                      enterprise associated with the trap currently
                      being sent.  When a SNMPv2 proxy agent is mapping
                      an RFC1157 Trap-PDU into a SNMPv2-Trap-PDU, this
                      variable occurs as the last varbind."
              ::= { snmpTrap 3 }

          snmpV2EnableAuthenTraps OBJECT-TYPE
              SYNTAX     TruthValue
              MAX-ACCESS read-write
              STATUS     current
              DESCRIPTION
                      "Indicates whether the SNMPv2 entity, when acting
                      in an agent role, is permitted to generate
                      authenticationFailure traps.  The value of this
                      object overrides any configuration information; as
                      such, it provides a means whereby all
                      authenticationFailure traps may be disabled.

                      Note that it is strongly recommended that this
                      object be stored in non-volatile memory so that it
                      remains constant between re-initializations of the
                      network management system."
              REFERENCE
                      "Derived from RFC1213-MIB.snmpEnableAuthenTraps."
              ::= { snmpTrap 4 }


          -- well-known traps

          snmpTraps      OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }


          coldStart NOTIFICATION-TYPE
              STATUS  current
              DESCRIPTION
                      "A coldStart trap signifies that the SNMPv2
                      entity, acting in an agent role, is reinitializing
                      itself such that its configuration may be
                      altered."
              ::= { snmpTraps 1 }

          warmStart NOTIFICATION-TYPE
              STATUS  current
              DESCRIPTION
                      "A warmStart trap signifies that the SNMPv2
                      entity, acting in an agent role, is reinitializing
                      itself such that its configuration is unaltered."
              ::= { snmpTraps 2 }

          linkDown NOTIFICATION-TYPE
              OBJECTS { ifIndex }
              STATUS  current
              DESCRIPTION
                      "A linkDown trap signifies that the SNMPv2 entity,
                      acting in an agent role, recognizes a failure in
                      one of the communication links represented in its
                      configuration."
              ::= { snmpTraps 3 }

          linkUp NOTIFICATION-TYPE
              OBJECTS { ifIndex }
              STATUS  current
              DESCRIPTION
                      "A linkUp trap signifies that the SNMPv2 entity,
                      acting in an agent role, recognizes that one of
                      the communication links represented in its
                      configuration has come up."
              ::= { snmpTraps 4 }

          authenticationFailure NOTIFICATION-TYPE
              STATUS  current
              DESCRIPTION
                      "An authenticationFailure trap signifies that the
                      SNMPv2 entity, acting in an agent role, has
                      received a protocol message that is not properly
                      authenticated.  While all implementations of the
                      SNMPv2 must be capable of generating this trap,
                      the snmpV2EnableAuthenTraps object indicates
                      whether this trap will be generated."
              ::= { snmpTraps 5 }

          egpNeighborLoss NOTIFICATION-TYPE
              OBJECTS { egpNeighAddr }
              STATUS  current
              DESCRIPTION
                      "An egpNeighborLoss trap signifies that an EGP
                      neighbor has been marked down and the EGP peer
                      relationship no longer obtains."
              ::= { snmpTraps 6 }


          -- the set group
          --
          -- a collection of objects which allow several cooperating
          -- SNMPv2 entities, all acting in a manager role, to
          -- coordinate their use of the SNMPv2 set operation.

          snmpSet        OBJECT IDENTIFIER ::= { snmpMIBObjects 6 }


          snmpSetSerialNo OBJECT-TYPE
              SYNTAX     TestAndIncr
              MAX-ACCESS read-write
              STATUS     current
              DESCRIPTION
                      "An advisory lock used to allow several
                      cooperating SNMPv2 entities, all acting in a
                      manager role, to coordinate their use of the
                      SNMPv2 set operation.

                      This object is used for coarse-grain coordination.
                      To achieve fine-grain coordination, one or more
                      similar objects might be defined within each MIB
                      group, as appropriate."
              ::= { snmpSet 1 }


          -- conformance information

          snmpMIBConformance
                         OBJECT IDENTIFIER ::= { snmpMIB 2 }

          snmpMIBCompliances
                         OBJECT IDENTIFIER ::= { snmpMIBConformance 1 }
          snmpMIBGroups  OBJECT IDENTIFIER ::= { snmpMIBConformance 2 }


          -- compliance statements

          snmpMIBCompliance MODULE-COMPLIANCE
              STATUS  current
              DESCRIPTION
                      "The compliance statement for SNMPv2 entities
                      which implement the SNMPv2 MIB."
              MODULE  RFC1213-MIB
                  MANDATORY-GROUPS { system }

              MODULE  -- this module
                  MANDATORY-GROUPS { snmpStatsGroup, snmpORGroup,
                                     snmpTrapGroup, snmpSetGroup }

                  GROUP   snmpV1Group
                  DESCRIPTION
                      "The snmpV1 group is mandatory only for those
                       SNMPv2 entities which also implement SNMPv1."
              ::= { snmpMIBCompliances 1 }


          -- units of conformance

          snmpStatsGroup OBJECT-GROUP
              OBJECTS { snmpStatsPackets, snmpStats30Something,
                        snmpStatsEncodingErrors,
                        snmpStatsUnknownDstParties,
                        snmpStatsDstPartyMismatches,
                        snmpStatsUnknownSrcParties, snmpStatsBadAuths,
                        snmpStatsNotInLifetimes,
                        snmpStatsWrongDigestValues,
                        snmpStatsUnknownContexts,
                        snmpStatsBadOperations,
                        snmpStatsSilentDrops }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing basic
                      instrumentation of the SNMPv2 entity."
              ::= { snmpMIBGroups 1 }

          snmpV1Group OBJECT-GROUP
              OBJECTS { snmpV1BadCommunityNames, snmpV1BadCommunityUses }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing basic
                      instrumentation of a SNMPv2 entity which also
                      implements SNMPv1."
              ::= { snmpMIBGroups 2 }

          snmpORGroup OBJECT-GROUP
              OBJECTS { snmpORLastChange, snmpORID, snmpORDescr }
              STATUS  current
              DESCRIPTION
                      "A collection of objects allowing a SNMPv2 entity
                      acting in an agent role to describe its
                      dynamically-configurable object resources."
              ::= { snmpMIBGroups 3 }

          snmpTrapGroup OBJECT-GROUP
              OBJECTS { snmpTrapNumbers, snmpV2EnableAuthenTraps }
              STATUS  current
              DESCRIPTION
                      "A collection of objects which allow the SNMPv2
                      entity, when acting in an agent role, to be
                      configured to generate SNMPv2-Trap-PDUs."
              ::= { snmpMIBGroups 4 }

          snmpSetGroup OBJECT-GROUP
              OBJECTS { snmpSetSerialNo }
              STATUS  current
              DESCRIPTION
                      "A collection of objects which allow several
                      cooperating SNMPv2 entities, all acting in a
                      manager role, to coordinate their use of the
                      SNMPv2 set operation."
              ::= { snmpMIBGroups 5 }


          END